package main

import (
	"fmt"
	"os"
	"os/exec"
	"path/filepath"
	"strings"

	"github.com/sirupsen/logrus"
)

var log *logrus.Logger

func main() {
	Execute()
}

/**
这里负责程序的大部分初始化
1. 初始化日志目录以及文件
2. 初始化脚本目录以及文件配置
*/
func init() {
	// 获取当前目录
	InitContextPath()
	// 初始化日志目录以及文件
	initLog()
}

func initLog() {
	// 初始化日志配置
	log = logrus.New()
	// log.SetFormatter(&logrus.JSONFormatter{})
	log.AddHook(CustomHook(fmt.Sprintf("%s/%s", appPath, logName), "0664"))
}

// InitContextPath 初始化基础配置(这个函数一定要最先执行)
func InitContextPath() {
	pt := GetCurrPath()
	currnetPath := filepath.Dir(pt)
	currentDir := filepath.Base(pt)
	// fmt.Printf("当前文件夹: %s/%s \n", currnetPath, currentDir)
	appPath = fmt.Sprintf("%s/%s", currnetPath, currentDir)
	appName = filepath.Base(os.Args[0])
}

// GetCurrPath 获取当前目录
func GetCurrPath() string {
	file, _ := exec.LookPath(os.Args[0])
	path, _ := filepath.Abs(file)
	index := strings.LastIndex(path, string(os.PathSeparator))
	ret := path[:index]
	return ret
}
